home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModalRadios.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  4.1 KB  |  160 lines  |  [TEXT/CWIE]

  1. // ModalRadios.cp -- Modal dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModalRadios.h"
  18.  
  19. #define kOKButton        1
  20. #define kRadioGroupGroup        2
  21. #define kStandardRadio        3
  22. #define kGroupBox        4
  23. #define kGroupGroup        5
  24. #define kGroupRadio1        6
  25. #define kGroupRadio2        7
  26. #define kGroupRadio3        8
  27. #define kGraphicBox        9
  28. #define kGraphicGroup        10
  29. #define kStopRadio        11
  30. #define kGoRadio        12
  31. #define kBevelBox        13
  32. #define kBevelGroup        14
  33. #define kRadioButtonRadio        15
  34. #define kRadioButton2Radio        16
  35. #define kTextBox        17
  36. #define kTextGroup        18
  37. #define kNameRadio        19
  38. #define kKindRadio        20
  39. #define kSizeRadio        21
  40.  
  41.  
  42. //----------
  43. // static
  44. Boolean        CModalRadios::GetModalRadios (
  45.     DModalRadiosData*        ioData)
  46. {
  47.     Boolean            result = false;
  48.     CModalRadios*        dialog = new CModalRadios;
  49.  
  50.     result = dialog->RunModal (DLOG_ModalRadios, ioData);
  51.  
  52.     delete dialog;
  53.  
  54.     return result;
  55. }
  56.  
  57. //----------
  58. CModalRadios::CModalRadios ()
  59. {
  60.     mData = nil;
  61. }
  62.  
  63. //----------
  64. CModalRadios::~CModalRadios ()
  65. {
  66. }
  67.  
  68. //----------
  69. void    CModalRadios::FinishMake ()
  70. {
  71.     mOKHandle = GetControlItem (kOKButton);
  72.     SetDefaultState (mOKHandle, true);
  73.     ::SetDialogDefaultItem (mDialog, kOKButton);
  74.     mRadioGroupGroupHandle = GetControlItem (kRadioGroupGroup);
  75.     mStandardHandle = GetControlItem (kStandardRadio);
  76.     mGroupBoxHandle = GetControlItem (kGroupBox);
  77.     mGroupGroupHandle = GetControlItem (kGroupGroup);
  78.     mGroupRadio1Handle = GetControlItem (kGroupRadio1);
  79.     mGroupRadio2Handle = GetControlItem (kGroupRadio2);
  80.     mGroupRadio3Handle = GetControlItem (kGroupRadio3);
  81.     mGraphicBoxHandle = GetControlItem (kGraphicBox);
  82.     mGraphicGroupHandle = GetControlItem (kGraphicGroup);
  83.     mStopHandle = GetControlItem (kStopRadio);
  84.     mGoHandle = GetControlItem (kGoRadio);
  85.     mBevelBoxHandle = GetControlItem (kBevelBox);
  86.     mBevelGroupHandle = GetControlItem (kBevelGroup);
  87.     mRadioButtonHandle = GetControlItem (kRadioButtonRadio);
  88.     SetBevelButtonGraphicAlignment (mRadioButtonHandle, kControlBevelButtonAlignCenter, 0, 0);
  89.     mRadioButton2Handle = GetControlItem (kRadioButton2Radio);
  90.     SetBevelButtonGraphicAlignment (mRadioButton2Handle, kControlBevelButtonAlignCenter, 0, 0);
  91.     mTextBoxHandle = GetControlItem (kTextBox);
  92.     mTextGroupHandle = GetControlItem (kTextGroup);
  93.     mNameHandle = GetControlItem (kNameRadio);
  94.     mKindHandle = GetControlItem (kKindRadio);
  95.     mSizeHandle = GetControlItem (kSizeRadio);
  96. }
  97.  
  98. //----------
  99. void    CModalRadios::ConnectToData (
  100.     AMSignaler*        inData)
  101. {
  102.     AMDialog::ConnectToData (inData);
  103.     mData = (DModalRadiosData*) inData;
  104.  
  105.     SetControlValue (mRadioGroupGroupHandle, mData->GetRadioGroup2 ());
  106.     SetControlValue (mGroupGroupHandle, mData->GetGroup2 ());
  107.     SetControlValue (mGraphicGroupHandle, mData->GetGraphic3 ());
  108.     SetControlValue (mBevelGroupHandle, mData->GetBevel2 ());
  109.     SetControlValue (mTextGroupHandle, mData->GetText2 ());
  110. }
  111.  
  112. //----------
  113. void    CModalRadios::DataChanged (
  114.     long        inDataID)
  115. {
  116.     if (inDataID == idRadioGroup2) {
  117.         SetControlValue (mRadioGroupGroupHandle, mData->GetRadioGroup2 ());
  118.     }
  119.     if (inDataID == idGroup2) {
  120.         SetControlValue (mGroupGroupHandle, mData->GetGroup2 ());
  121.     }
  122.     if (inDataID == idGraphic3) {
  123.         SetControlValue (mGraphicGroupHandle, mData->GetGraphic3 ());
  124.     }
  125.     if (inDataID == idBevel2) {
  126.         SetControlValue (mBevelGroupHandle, mData->GetBevel2 ());
  127.     }
  128.     if (inDataID == idText2) {
  129.         SetControlValue (mTextGroupHandle, mData->GetText2 ());
  130.     }
  131. }
  132.  
  133.  
  134. //----------
  135. void    CModalRadios::DoItem (
  136.     SInt16        inItemHit)
  137. {
  138.     switch (inItemHit) {
  139.     case kOKButton:
  140.             SetResult (true);
  141.         break;
  142.     case kRadioGroupGroup:
  143.             mData->SetRadioGroup2 (GetControlValue (mRadioGroupGroupHandle));
  144.         break;
  145.     case kGroupGroup:
  146.             mData->SetGroup2 (GetControlValue (mGroupGroupHandle));
  147.         break;
  148.     case kGraphicGroup:
  149.             mData->SetGraphic3 (GetControlValue (mGraphicGroupHandle));
  150.         break;
  151.     case kBevelGroup:
  152.             mData->SetBevel2 (GetControlValue (mBevelGroupHandle));
  153.         break;
  154.     case kTextGroup:
  155.             mData->SetText2 (GetControlValue (mTextGroupHandle));
  156.         break;
  157.  
  158.     } // switch
  159. }
  160.